var fs = require("fs");
// 引入 events 模块
var events = require('events');

// 创建 eventEmitter 对象
var eventEmitter = new events.EventEmitter();

//
var fileNotFound = function (fileName) {
    setTimeout(() => {
        console.log(fileName + ' is not exist...');
    },1000)
}

eventEmitter.on('newListener',function (event,listener) {
    console.log('新：'+event);//自己监听不到
});
eventEmitter.on('newListener',function (event,listener) {
    console.log('新222：'+event);//自己监听不到
});

//绑定事件监听器。事件名为notFound。通过emit('notFound')出发
eventEmitter.on('notFound', fileNotFound);
//eventEmitter.once(event, listener)//只触发一次。触发后立即移除
console.log("程序开始执行");

eventEmitter.on('removeListener',function (event,listener) {
    console.log('移除了监听函数：'+event);
});

fs.readFile('input.txt', function (err, data) {
    if (err) {
        //出发名为notFound的事件
        eventEmitter.emit('notFound', 'input.txt');
        eventEmitter.removeAllListeners()
        // removeListener(event, listener)


        // eventEmitter.on('error',function (e) {
        //     console.log('errore'+e);
        // })
        //EventEmitter 定义了一个特殊的事件: error。必须要进行绑定监听才可触发，否则程序崩溃。其他监听不会
        eventEmitter.emit('error');
        return;
    }
});


